/* { dg-options "-O3" } */
/* { dg-do run } */

extern void abort (void);

void func (void)
{
  int i;
  int nops;
  char *codestr =
    "|\000\000Ee\000\000Z\001\000d\000\000Z\002\000d\025\000Z\003\000"
    "\t\t\t\t\t\t\t\t\t\t\t\td\026\000Z\004\000d\005\000\204\000\000Z"
    "\005\000e\006\000e\a\000j\005\000e\b\000d\006\000\204\002\000\203"
    "\001\000Z\t\000d\a\000\204\000\000Z\n\000d\b\000\204\000\000Z\v\000d"
    "\t\000\204\000\000Z\f\000d\n\000\204\000\000Z\r\000e\016\000e\017\000d"
    "\v\000\203\001\000d\f\000d\r\000\203\001\001Z\020\000e\016\000e\017"
    "\000d\016\000\203\001\000d\f\000d\017\000\203\001\001Z\021\000e\016"
    "\000e\017\000d\020\000\203\001\000d\f\000d\021\000\203\001\001Z\022"
    "\000e\016\000e\017\000d\022\000\203\001\000d\f\000d\023\000\203\001"
    "\001Z\023\000d\024\000S";
  int codelen = 209;
  int addrmap[500];

  for (i=0, nops=0 ; i<codelen ; i += ((codestr[i] >= 90) ? 3 : 1))
    {
      addrmap[i] = i - nops;
      if (codestr[i] == 9)
	nops++;
    }

  if (addrmap[0] != 0
      || addrmap[3] != 3
      || addrmap[4] != 4
      || addrmap[7] != 7
      || addrmap[10] != 10
      || addrmap[13] != 13
      || addrmap[16] != 16
      || addrmap[19] != 19
      || addrmap[22] != 22
      || addrmap[23] != 22
      || addrmap[24] != 22)
    abort ();
}

int main ()
{
  func ();
  return 0;
}
